Add parentheses to trace_do_casts macro.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Mon, 19 Mar 2007 09:32:52 +0000 (09:32 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Mon, 19 Mar 2007 09:32:52 +0000 (09:32 +0000)
The arguments to this macro didn't have parentheses around them where
they were used.  If a call to a TRACE macro included an expression as
an argument, the cast to (unsigned long) could bind to just part of
the expression and lead to unexpected results.

Signed-off-by: Michael Vrable <mvrable@cs.ucsd.edu>
xen/include/xen/trace.h

index 4f3649a394951818a7601ca4ea4166bac053e0de..cd1422bc093ad4a7fd57e86c4250e48e1fa9e652 100644 (file)
@@ -41,11 +41,11 @@ void trace(u32 event, unsigned long d1, unsigned long d2,
     do {                                 \
         if ( unlikely(tb_init_done) )    \
             trace(e,                     \
-                 (unsigned long)d1,      \
-                 (unsigned long)d2,      \
-                 (unsigned long)d3,      \
-                 (unsigned long)d4,      \
-                 (unsigned long)d5);     \
+                  (unsigned long)(d1),   \
+                  (unsigned long)(d2),   \
+                  (unsigned long)(d3),   \
+                  (unsigned long)(d4),   \
+                  (unsigned long)(d5));  \
     } while ( 0 )
 
 /* Convenience macros for calling the trace function. */